A datacenter may comprise many aspects—such as INTERNET Protocol (IP) addresses of components that connect to the datacenter, and subnets within the datacenter. Each of these aspects may need to be configured for the datacenter to function as desired. There are applications that are deployed over all or part of a datacenter. An application may be deployed based on its network requirements. Applications and services are increasingly distributed in nature and involve complex topologies with multiple hosts, load balancers, firewalls, and extranet components involved. Deploying complex applications may be effectuated by a process that supports operations such as creating virtual networks, setting options for VLAN tagging, binding to virtual switches, and binding to physical network interface cards (NICs). This process may be, for instance the MICROSOFT System Center Virtual Machine Manager (SCVMM).
A typical scenario for deploying an application in a datacenter (a data center comprising computing, network, and storage resources) involves the work of both a network administrator—who is responsible for configuring the datacenter—and server administrator—who is responsible for deploying the application upon that configured datacenter. A successful application deployment is based on the cooperative work between a server administrator and a network administrator. Further, once deployed within a given datacenter commonly referred to as a site, the administrators may desire to move the application to another site. A site is typically a physical location within a data center that is either in its own building or a section of a building with its own power, cooling, storage, networking, etc. A data center typically comprises multiple sites to provide redundancy. Geographic locations of user populations also determine site locations. A resource group is a logical entity within a site that comprises hosts, infrastructure such as storage, and networking. Dynamic migration of VMs is commonly constrained to occurring within a resource group. A service is an application that comprises a set of VMs, and the associated infrastructure, such as networking and storage. A service can be distributed across multiple resource groups and sites.
There are many problems with current techniques for deploying applications on datacenters, including sites, some of which are well known.